自定义nagios监控脚本-check_disk_sh

在客户端上创建脚本/usr/lib/nagios/plugins/check_disk.sh(该目录可自定义,在配置文件中设置)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash
row=`df -h | wc -l`
for i in `seq 2 $row`
do
ava=`df -h | sed -n "$i"p | awk '{print $4}'` #<==使用量
u_per=`df -h | sed -n "$i"p | sed -n "s/\%//"p awk '{print $5}'` #<==挂载点
p_p=`df -h -P | sed -n "$i"p | awk '{print $6}'`
if [ "$u_per" -gt "97" ]
then
echo -n "$p_p CRITICAL $u_per% $ava "
sta[$i]=2
elif [ "$u_per" -gt "95" ]
then
echo -n "$p_p WARNNING! $u_per% $ava "
sta[$i]=1
else
echo -n "$p_p OK $u_per% $ava "
sta[$i]=0
fi
done
n=0
for j in `seq 2 $row`
do
if [ "${sta[$j]}" -gt $n ]
then
n=${sta[$j]}
fi
done
exit $n

保存后,修改该脚本的权限:

1
chmod u+x /usr/bin/nagios/libexec/check_disk.sh

然后编辑/etc/nagios/nrpe.cfg文件,加入一行(client上):

1
command[check_disk]=/usr/lib/nagios/plugins/check_disk.sh

保存后,重启nrpe服务(client上):

1
/etc/init.d/nrpe restart

检测到该脚本是否正常运行的方法是,到server端执行如下命令:

1
check_nrpe -H 192.168.0.12 -c check_disk

如果正常的话,hi输出一行磁盘检测的数据,否则可能会报错。

到server上添加相应的service:

1
2
3
4
5
6
7
8
9
10
# cd /etc/nagios/conf.d/
# vim 192.168.0.12.cfg #<==加入如下内容
define service{
use generic-service
host_name 192.168.0.12
service_description check_disk
check_command check_nrpe!check_disk
max_check_attempts 5
normal_check_interval 1
}

在服务端重启nagios服务:

1
/etc/init.d/nagios restart

0%